AWS Client VPNをプロキシ経由で接続してみた
はじめに
こんにちは、シマです。
みなさんVPNつないでいますか?(挨拶)
AWS Client VPNを利用するシーンは、様々なものが考えられると思います。
レアケースかもしれませんが、今回はプロキシ経由でAWS Client VPNを利用するシーンについて調べてみましたので、その内容について記載します。
やりたいこと
構成図は以下で、プロキシ経由でAWS Client VPN接続をすることです。
前提
- プロキシの構築が済んでいること
- VPN通信がプロキシにブロックされないこと
- AWS Client VPNの環境構築が可能であること
AWS Client VPNの環境構築はすでに記事になっているため、詳細を割愛します。
そちらを参考にして構築してください。
いきなり結論
以下を実施することで実現できました。
- プロトコルはTCPにする必要がある
- クライアント設定ファイルにプロキシ設定を追記する
- クライアントのソフトはAWSが提供するソフト以外にする
- クライアント設定ファイルのDNS名を修正する
詳細
それぞれ必要なアクションについて詳細を以下に記載します。
1. プロトコルはTCPにする必要がある
プロキシ経由のVPN接続のためには、クライアントVPNエンドポイントの設定のトランスポートプロトコルでTCPを指定する必要があります。
作成済みのクライアントVPNエンドポイントに対して、トランスポートプロトコルは後から変更できないため、すでに構築済みの場合は再作成が必要です。
2. クライアント設定ファイルにプロキシ設定を追記する
AWS管理コンソールからクライアントVPNエンドポイントを開き、クライアント設定をダウンロードをクリックします。
クライアント設定をダウンロードをクリックし、「downloaded-client-config.ovpn」をダウンロードします。
ダウンロードしたクライアント設定ファイル(ovpn)をメモ帳等のテキストエディタで開き、http-proxyディレクティブを追加します。
※「192.168.4.1」は実際のプロキシのIP、「1080」は実際のプロキシのポートを指定します
プロキシで認証が必要な場合は、以下を参照し設定してください。
HTTPプロキシ経由でのOpenVPNサーバーへの接続
3. クライアントのソフトはAWSが提供するソフト以外にする
クライアント設定ファイル(ovpn)をAWSが提供するVPNクライアントソフトで使用すると以下のようなエラーメッセージが表示されてしまいます。
クライアントに導入するソフトは前述のプロキシ設定に対応している必要があります。
しかし、AWS Client VPNはプロキシ設定に未対応(※)なため、他のソフトを使用する必要があります。
※AWSが提供するクライアントのサポートされたOpenVPN ディレクティブ
今回は、以下ドキュメントに記載のあるOpenVPNを使用しました。
OpenVPN クライアントを使用して接続する
インストール方法の詳細はすでに記事になっているため、詳細を割愛します。
そちらを参考にして構築してください。
4. クライアント設定ファイルのDNS名を修正する
このままVPN接続すると、エンドポイントの名前解決が行えずエラーになってしまいます。
そのため、クライアント設定ファイル(ovpn)の一部を以下のように修正する必要があります。
クライアントVPNエンドポイントDNS名を解決できない
修正前
remote cvpn-endpoint-xxxxxxxxxxxx.prod.clientvpn.ap-northeast-1.amazonaws.com 443
修正後
remote asdfa.cvpn-endpoint-xxxxxxxxxxxx.prod.clientvpn.ap-northeast-1.amazonaws.com 443
最後に
今回はプロキシ経由でAWS Client VPN接続をしてみました。
軽い気持ちでやってみましたが、思ったより時間がかかりました。
どこかのどなたかの参考になれば幸いです。